謎レシピ:TypeScriptのSublimeSocketフィルタ書いた
概要
深刻に、やせようと思います。
関係ないけどTypeSciptのオートコンパイル & エラーをコード上に表示 君を書きました。
可能になるのは下記
・編集しながらの適宜ライブコンパイル
・保存に反応してのコンパイル
・エラー表示
やーエラーログ充実させないと辛いわ。
勉強になる。
やせたい。
実際の映像
材料(ひとりぶん)
Sublime Text 2 :一個
SublimeSocket :一個
node.js :一個
wsモジュール :一個
tailモジュール :一個
TypeScriptソース :適量
レシピ
1.したごしらえ
nodeをインストールします。
最新のでいいんじゃないでしょうか。
TypeScriptをインストールします。
0.8.3でいいんじゃないでしょうか。
参考 http://www.typescriptlang.org
nodeのモジュールのws(WebSocketするやつ)
と、tail(ファイル監視するやつ) も、ここで入れてしまいましょう。
ws https://github.com/einaros/ws
tail https://github.com/forward/node-tail
wsモジュールは、もしかすると、Originを付けない駄目な状態かもしれないので、
その時はこっちを使ってみると良いかもです。
https://github.com/sassembla/ws
Sublime Text 2をインストールします。
長いので以降STと呼びます。
verは2で良いと思います。3の旬はまだ先です。
SublimeText http://www.sublimetext.com
SublimeSocketを下記から落としてSTのpackageフォルダに放り込みます。
ST内にWebSocketサーバ/STのAPIサーバを構築するプラグインです。
長いので以下SSと呼びます。
https://github.com/sassembla/SublimeSocket
TypeScriptのソース
各自入手するなり、自家栽培するなりしてください。
デモで使ったのは、 http://www.typescriptlang.org から持って来たGreeter.tsです。
2.STを起動、SublimeSocketをon
コマンドパレットからsoonとか打てば良いと思います。
正確には、SublimeSocket: on 。
これで、ST内にWebSocketサーバ/STのAPIサーバが立ち上がります。
3.node_tailsocket_typescript.jsをnodeで起動します。
nodeで、TypeScriptのコンパイル環境を立ち上げます。
その際、下記パスを使います。
・コンパイルしたい.tsファイルが置いてあるフォルダのパス
コンパイル対象になる tsファイルの検索条件は、単なる*.tsです。
複数ファイルをいっぺんにコンパイルしてますが、いまんとこ、異なるフォルダ階層のファイルは見に行ってません。
簡単に改造できる筈。
・node_tailsocket_typescript.jsファイルのパス
・tscwithenv.shファイルのパス
SublimeTextのパッケージフォルダ/SublimeSocket/tool/nodeTailSocket/下の下記2ファイル
(別フォルダへの持ち出し可、位置相関なし。 っていうかSTのパスがspaceを含むため持ち出しを強く推奨。)
これらをパラメータとして、nodeで起動します。
node node_tailsocket_typescript.jsファイルのパス tscwithenv.shファイルのパス コンパイルしたい.tsファイルが置いてあるフォルダのパス
SublimeSocketのフォルダパスをそのまま使って、Desktop上のフォルダ tscomp 内の.tsファイルを全部コンパイルしようとすると、
下記のようなコマンドになります。きっと。
node /Users/sassembla/Library/Application\ Support/Sublime\ Text\ 2/Packages/SublimeSocket/tool/nodeTailSocket/node_tailsocket_typescript.js "\"/Users/sassembla/Library/Application Support/Sublime Text 2/Packages/SublimeSocket/tool/nodeTailSocket/tscwithenv.sh\"" /Users/sassembla/Desktop/tscomp
第二引数の "\"/Users/sassembla/Library/Application Support/Sublime Text 2/Packages/SublimeSocket/tool/nodeTailSocket/tscwithenv.sh\"" について、
STのパスがスペースを含んでるクソッタレパスなので、""をつけ、かつ内部でも""がかかってる必要があるためエスケープしておく必要があります。
や、node_tailsocket_typescript.js と tscwithenv.sh を手近などこかにコピーして、平和に実行する事をお勧めします。
5.自家製TypeScriptをお好みで編集!
はっちゃけるところです。
好きに編集してください。
エラーがあれば怒られる筈だし、
編集したり保存したりするタイミングで
勝手にビルドが走ります。
コンパイルログが ・コンパイルしたい.tsファイルが置いてあるフォルダのパス に出力されるのですが、
でけーな邪魔だなーと思ったら手で消してください。
旨い機構とか考えたら自動的に消すとかしたいです。
全体像
・SublimeText内でSublimeSocketを起動、WebSocketを通じてSublimeのAPIを実行可能に。
・nodeで、TypeScriptのコンパイルログを監視、結果をWebSocket経由でSublimeTextに転送。
・SublimeText側でエラーとか行とか内容を取得、表示。
・SublimeText側から、コードの編集や保存をキーに、コンパイルを実行。
ということをやってます。
ところで痩せたいです。運動スルベ。